Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit d9fe743b9046dfe8225f87a5a970dc466e68f3cd


Parents : 51c9d98
Author : Mark Qvist <mark@unsigned.io>
Date : 2021-05-14T15:13:17+02:00

Implemented minimal/full editor

Changes

2 files changed, 44 insertions(+), 8 deletions(-)


Diff

diff --git a/nomadnet/Conversation.py b/nomadnet/Conversation.py
index 52479ab..5757f65 100644
--- a/nomadnet/Conversation.py
+++ b/nomadnet/Conversation.py
@@ -137,7 +137,7 @@ class Conversation:
if self.send_destination:
dest = self.send_destination
source = self.app.lxmf_destination
- lxm = LXMF.LXMessage(dest, source, content, desired_method=LXMF.LXMessage.DIRECT)
+ lxm = LXMF.LXMessage(dest, source, content, title=title, desired_method=LXMF.LXMessage.DIRECT)
lxm.register_delivery_callback(self.message_notification)
lxm.register_failed_callback(self.message_notification)
self.app.message_router.handle_outbound(lxm)

diff --git a/nomadnet/ui/textui/Conversations.py b/nomadnet/ui/textui/Conversations.py
index cd301a6..cec1699 100644
--- a/nomadnet/ui/textui/Conversations.py
+++ b/nomadnet/ui/textui/Conversations.py
@@ -18,7 +18,7 @@ class ConversationDisplayShortcuts():
def __init__(self, app):
self.app = app
- self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear [C-t] Add Title [C-w] Close Conversation [C-p] Purge Failed"), "shortcutbar")
+ self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear [C-t] Toggle Editor [C-w] Close Conversation [C-p] Purge Failed"), "shortcutbar")
class ConversationsArea(urwid.LineBox):
def keypress(self, size, key):
@@ -407,19 +407,43 @@ class ConversationWidget(urwid.WidgetWrap):
self.conversation.register_changed_callback(self.conversation_changed)
- msg_editor = MessageEdit(caption="\u270E", edit_text="", multiline=True)
+ #title_editor = MessageEdit(caption="\u270E", edit_text="", multiline=False)
+ title_editor = MessageEdit(caption="", edit_text="", multiline=False)
+ title_editor.delegate = self
+
+ #msg_editor = MessageEdit(caption="\u270E", edit_text="", multiline=True)
+ msg_editor = MessageEdit(caption="", edit_text="", multiline=True)
msg_editor.delegate = self
header = None
if self.conversation.trust_level == DirectoryEntry.UNTRUSTED:
header = urwid.AttrMap(urwid.Padding(urwid.Text("\u26A0 Warning: Conversation with untrusted peer \u26A0", align="center")), "msg_warning_untrusted")
- self.editor = msg_editor
+ self.minimal_editor = urwid.AttrMap(msg_editor, "msg_editor")
+
+ title_columns = urwid.Columns([
+ (8, urwid.Text("Title")),
+ urwid.AttrMap(title_editor, "msg_editor"),
+ ])
+
+ content_columns = urwid.Columns([
+ (8, urwid.Text("Content")),
+ urwid.AttrMap(msg_editor, "msg_editor")
+ ])
+
+ self.full_editor = urwid.Pile([
+ title_columns,
+ content_columns
+ ])
+
+ self.content_editor = msg_editor
+ self.title_editor = title_editor
+ self.full_editor_active = False
self.frame = urwid.Frame(
self.messagelist,
header=header,
- footer=urwid.AttrMap(msg_editor, "msg_editor")
+ footer=self.minimal_editor
)
self.display_widget = urwid.LineBox(
@@ -428,12 +452,22 @@ class ConversationWidget(urwid.WidgetWrap):
urwid.WidgetWrap.__init__(self, self.display_widget)
+ def toggle_editor(self):
+ if self.full_editor_active:
+ self.frame.contents["footer"] = (self.minimal_editor, None)
+ self.full_editor_active = False
+ else:
+ self.frame.contents["footer"] = (self.full_editor, None)
+ self.full_editor_active = True
+
def keypress(self, size, key):
if key == "ctrl w":
self.close()
elif key == "ctrl p":
self.conversation.purge_failed()
self.conversation_changed(None)
+ elif key == "ctrl t":
+ self.toggle_editor()
else:
return super(ConversationWidget, self).keypress(size, key)
@@ -467,12 +501,14 @@ class ConversationWidget(urwid.WidgetWrap):
def clear_editor(self):
- self.editor.set_edit_text("")
+ self.content_editor.set_edit_text("")
+ self.title_editor.set_edit_text("")
def send_message(self):
- content = self.editor.get_edit_text()
+ content = self.content_editor.get_edit_text()
+ title = self.title_editor.get_edit_text()
if not content == "":
- self.conversation.send(content)
+ self.conversation.send(content, title)
self.clear_editor()
def close(self):


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────